From 70887df329e3921089840787e690e01b31e7f448 Mon Sep 17 00:00:00 2001
From: Daniel Carl <danielcarl@gmx.de>
Date: Sun, 2 Dec 2012 22:37:55 +0100
Subject: [PATCH] Fixed none working keybinds with single uppercase chars.

---
 src/keybind.c | 4 +---
 src/keybind.h | 2 ++
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/keybind.c b/src/keybind.c
index 390481e..e9d7836 100644
--- a/src/keybind.c
+++ b/src/keybind.c
@@ -199,10 +199,8 @@ static guint keybind_str_to_value(const gchar* str)
 
 static gboolean keybind_keypress_callback(WebKitWebView* webview, GdkEventKey* event)
 {
-    static GdkModifierType modifiers;
-    modifiers    = gtk_accelerator_get_default_mod_mask();
     guint keyval = event->keyval;
-    guint state  = (event->state & modifiers);
+    guint state  = CLEAN_STATE(event);
 
     /* check for escape or modkeys or counts */
     if (IS_ESCAPE_KEY(keyval, state)) {
diff --git a/src/keybind.h b/src/keybind.h
index 7dab1ee..03a2001 100644
--- a/src/keybind.h
+++ b/src/keybind.h
@@ -21,6 +21,8 @@
 #define KEYBIND_H
 
 #define IS_ESCAPE_KEY(k, s) ((k == GDK_Escape && s == 0) || (k == GDK_c && s == GDK_CONTROL_MASK))
+#define CLEAN_STATE_WITH_SHIFT(e) ((e)->state & (GDK_MOD1_MASK|GDK_MOD4_MASK|GDK_SHIFT_MASK|GDK_CONTROL_MASK))
+#define CLEAN_STATE(e)            ((e)->state & (GDK_MOD1_MASK|GDK_MOD4_MASK|GDK_CONTROL_MASK))
 
 #include <gdk/gdkkeysyms.h>
 #include <gdk/gdkkeysyms-compat.h>
-- 
2.20.1